草庐IT

debugging - MongoDB:mapReduce 的副作用

全部标签

mongodb - 使用 gopkg.in/mgo.v2 检查 mongo 中的对象是否存在

我正在寻找一种方便的方法来检查对象是否已存在于集合中。目前我找到的唯一方法是typeresultinterface{}varresresulterr:=col.Find(bson.M{"title":"title1"}).One(&res)iferr!=nil{iferr.Error()=="notfound"{log.Println("Nosuchdocument")}else{log.Println("erroccured",err)}}我不想创建变量res,如果对象存在,它可能是包含很多字段的非常重的文档。我希望有另一种方法,一些Check()函数只返回bool值..基本上我只需

mongodb - 过滤集合但按内部属性排序

考虑到我有如下的文档集合,我想获取如下返回的信息:从campaignID=12的事件中选择所有条目,按entries.questionscorrect降序排序,限制为10。我已经对一些查询进行了尝试,但我似乎陷入了这样一个事实,即我在一个级别上进行选择,但想在较低级别(即属性)上订购。这是我目前所拥有的:db.getCollection('main').find({"id":4},{"entries":1}).sort({"questionscorrect":-1}).limit(2)请问我如何用Go(Mgo)语法或直接的MongoDB查询来编写它?我不断收到返回的信息,但按数量排序{

mongodb - 如何通过管道函数获取子字段值

我正在编写代码,用于在golang中从mongodb接收数据。我的代码如下:typeDataContentstruct{Createtime.Time`bson:"create"`Descstring`bson:"desc"`}typeDatastruct{Idbson.ObjectId`bson:"_id,omitempty"`Descstring`bson:"desc"`ContentDataContent`bson:"content"`}funcget()error{result:=[]Data{}coll:=session.DB(“”).C(“aaa”)project:=bso

mongodb - 在出现错误的情况下重新创建 mgo session (读取 tcp 127.0.0.1 :46954->127. 0.0.1:27017: i/o 超时)

我想知道如何使用mgo在Go中管理MongoDBsession,尤其是关于如何正确确保session已关闭以及如何对写入失败使用react。我已阅读以下内容:BestpracticetomaintainamgosessionShouldIcopysessionforeachoperationinmgo?仍然不能将其应用于我的情况。我有两个goroutine,它们将事件一个接一个地存储到MongoDB中,共享同一个*mgo.Session,两者看起来基本上如下所示:funcstoreEvents(session*mgo.Session){session_copy:=session.Cop

go - Golang 中的变量初始化和作用域

我正在学习golang,我遇到了下面的代码varkvstore=make(map[string][]byte)//thisfunctioninstantiatesthedatabasefuncinit_db(){kvstore=make(map[string][]byte)}//putinsertsanewkeyvaluepairorupdatesthevaluefora//givenkeyinthestorefuncput(keystring,value[]byte){kvstore[key]=value}//getfetchesthevalueassociatedwiththeke

go - 为什么 golang duck typing 在我下面的代码中对我不起作用?

在下面的代码中,我尝试创建模型接口(interface)和API接口(interface)的具体实现:packagemainimport"fmt"/////////typeModelinterface{ID()string}typeAPIinterface{Create(Model)}/////////typeConcreteModelstruct{}func(modelConcreteModel)ID()string{return"123"}func(modelConcreteModel)Name()string{return"aron"}typeConcreteAPIstruct{

mongodb - 在嵌入式数组 golang 中检索范围时间 mongodb 之间的值

这是我的mongodb数据库:"_id":ObjectId("58808d735ba19c2797f486ca"),"userid":ObjectId("58808d735ba19c2797f486c9"),"history":[{"floorId":"309cf96f-1812-44f6-8d94-d5ce2b8839be","time":ISODate("2017-01-19T09:57:34.572Z"),"position":{"latitude":48.815267598833806,"longitude":2.3630101271630677},"pointcoordina

mongodb - $lookup 和 $match Mongodb golang

我想通过在MongoDB上使用$lookup和$match来获取带有外键的文档。有一个“Jobs”集合,用于存储Job文档。在作业文档中有两个字段用作外键“creatorParent”和“Children”。CreatorParent是“Users”集合的外键,Children数组包含用户child的ID。当我列出所有作业时,我想从“用户”集合中检索CreatorParentID和ChildrenID的详细信息。我想用ParentDetail和ChildDetail编码“工作”文档。我不想为此编写自定义方法。是否可以使用MongoDB查询来处理它?顺便说一下,我是MongoDB的初学者

google-app-engine - GAE 中 Dockerised Golang Web App 中的 smtp sendmail 不起作用

我在用Go编写的GAE上部署了一个docker化的网络应用程序。支付模块使用stripecheckoutAPI并在成功时触发电子邮件通知。调试时,我观察到以下代码行没有执行。我试过587端口,结果一样。err:=smtp.SendMail("smtp.gmail.com:465",auth,from,[]string{to},[]byte(msg))我在我的本地m/c上有相同的应用程序,此功能适用于它。不过,我没有在我的本地m/c上使用docker。我在“发件人”用户字段中使用与我的GAE帐户相同的用户凭据。这可能是代码失败的原因。或者应该在dockerfile中描述smtp服务身份验

mongodb - 如何使用 Go 更新 Mongodb 中的数组字段

我想把stu1改成stu3import("gopkg.in/mgo.v2""gopkg.in/mgo.v2/bson")typeStudentstruct{Namestring`bson:"name"`Agestring`bson:"age"`}typeClassstruct{Idstring`bson:"_id"`Student[]Student`bson:"student"`}col:=mongosession.DB("test").C("class")stu1:=Student{"jack","18"}stu2:=Student{"rose","16"}class:=Class{